package ru.spb.osll.myfit.client.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import ru.spb.osll.myfit.common.ExecutingResult;
import ru.spb.osll.myfit.common.MetadataColumnDef;
import ru.spb.osll.myfit.common.PageExecutingResult;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface PageExecutingServiceAsync {

  public void getExecutingResult(String id, AsyncCallback<PageExecutingResult> callback);

  public void executePage(String pagePath, Map<String, String> testRunMetadata, AsyncCallback<PageExecutingResult> callback);

  public void getTestResults(String filtersString, AsyncCallback<Set<PageExecutingResult>> async);

  public void getTestResultHeaders(String filtersString, AsyncCallback<Set<ExecutingResult>> async);

  public void getExecutingResultsBatch(Set<String> ids, AsyncCallback<List<PageExecutingResult>> async);

  void getResultHeadersBatch(Set<String> ids, AsyncCallback<Set<PageExecutingResult>> async);

  public void saveMetadata(Map<String, String> metadata, String id, AsyncCallback<Void> async);

  public void getMetadataColDef(AsyncCallback<List<MetadataColumnDef>> async);
}
